/******************************************************************************
 *      Mestrado em Ciência da Computação - UFMS
 *		Redes de Computadores - Prof. Dr. Ronaldo Alves Ferreira
 *		Alunos: Geraldo Landre, Marcel Tolentino, Vinícius Bueno
 *****************************************************************************/
/* tcpabort.c - tcpabort */

#include "tcpfms.h"
#include "tcb.h"


extern int tcpkilltimers(struct tcb *ptcb);

/*------------------------------------------------------------------------
 *  tcpabort -  aborta uma conexão ativa TCP
 *------------------------------------------------------------------------
 */
int tcpabort(struct tcb *ptcb, int error)
{
	tcpkilltimers(ptcb);
	ptcb->tcb_flags |= TCBF_RDONE|TCBF_SDONE;
	ptcb->tcb_error = error;
	tcpwakeup(READERS|WRITERS, ptcb);
	return OK;
}
